/*******************************************************************
This file is part of iAgenda.

iAgenda is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

iAgenda is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with iAgenda.  If not, see <http://www.gnu.org/licenses/>.
*******************************************************************/

#pragma once

#define SZ_IAGENDA_REG_KEY          TEXT("Software\\iApps\\iAgenda")
#define REGISTRY_MAXLENGTH          32


//#define MAIN_SECTION                TEXT("main")
//#define LANGUAGE_SECTION            TEXT("language")
//#define SKIN_SECTION                TEXT("theme")

//#define INI_EMAIL_ACCOUNT_KEY       TEXT("EmailAccount")
//#define INI_EMAIL_ACCOUNT_DEFAULT   TEXT("")
#define INI_FAVORITE_CAT_KEY        TEXT("FavoriteCategory")
#define INI_FAVORITE_CAT_DEFAULT    TEXT("")
#define INI_EXIT_ON_MIN_KEY         TEXT("ExitOnMinimize")
#define INI_EXIT_ON_MIN_DEFAULT     TEXT("0")
#define INI_EXIT_ON_ACTION_KEY      TEXT("ExitOnAction")
#define INI_EXIT_ON_ACTION_DEFAULT  TEXT("0")
#define INI_FAST_GFX_KEY            TEXT("FastGraphics")
#define INI_FAST_GFX_DEFAULT        TEXT("0")
#define INI_ENABLE_SENSOR_KEY       TEXT("EnableSensor")
#define INI_ENABLE_SENSOR_DEFAULT   TEXT("1")
#define INI_SKIN_KEY                TEXT("Skin")
//#define INI_SKIN_DEFAULT            TEXT("default")
#define INI_SKIN_DEFAULT            TEXT("Manila")
#define INI_LANGUAGE_KEY            TEXT("Language")
#define INI_LANGUAGE_DEFAULT        TEXT("english")
#define INI_FULLSCREEN_KEY			TEXT("FullScreen")
#define INI_FULLSCREEN_DEFAULT		TEXT("1")
#define INI_GRAVITY_KEY				TEXT("Gravity")
#define INI_GRAVITY_DEFAULT			TEXT("20")

#define INI_PERIODFILTER_KEY		TEXT("PeriodFilter")
#define INI_PERIODFILTER_DEFAULT	TEXT("2 weeks")
#define INI_INCLUDEUNDATED_KEY		TEXT("IncludeUndated")
#define INI_INCLUDEUNDATED_DEFAULT	TEXT("1")
#define INI_SORTTASKS_KEY			TEXT("SortTasks")
#define INI_SORTTASKS_DEFAULT		TEXT("Due Date")

#define INI_FIRSTWEEKDAY_KEY		TEXT("FirstWeekDay")
#define INI_FIRSTWEEKDAY_DEFAULT	TEXT("1")

#define INI_OPENSCREEN_KEY 			TEXT("OpeningScreen")
#define INI_OPENSCREEN_DEFAULT		TEXT("Agenda")
	
#define INI_SWIPE_KEY 				TEXT("SwipeDirection")
#define INI_SWIPE_DEFAULT			TEXT("0")
	
#define INI_CHECK_KEY 				TEXT("EnableCheck")
#define INI_CHECK_DEFAULT			TEXT("1")

struct LanguageSetting {
    const TCHAR ** ppSetting;
    TCHAR * pszName;
    TCHAR * pszDefault;
};

class CSettings {
public:
    CSettings(void);
    // POOM settings
    TCHAR favorite_category[REGISTRY_MAXLENGTH];
//    TCHAR email_account[REGISTRY_MAXLENGTH];

	// toggles
	bool doExitOnAction;
	bool doExitOnMinimize;
    bool doFastGraphics;
	bool doShowFullScreen;
    bool doEnableSensor;	
	bool doIncludeUndated;
	bool doWeekStartSunday;
	bool doReverseSwipe; //4/8/10
	bool doEnableCheck; //4/13/10

	// Added string
	TCHAR period_filter[32];
	TCHAR sort_tasks[32]; //sort tasks
	TCHAR openingScreen[32]; //4/8/10


    // Strings
    TCHAR skin_path[MAX_PATH];
	TCHAR language_data[2048];

	// Physics
	float gravity;

	// These strings are just pointers to within language_data
	const TCHAR * agenda_string;  //ajige  favorites_default;
	const TCHAR * allday_string;
    const TCHAR * allappointments_string;
	const TCHAR * alltasks_string;
	const TCHAR * alphabet;
	const TCHAR * attendees_string;
	const TCHAR * busy_string;
	const TCHAR * categories_string;
	const TCHAR * confidential_string;
	const TCHAR * daily_string;
	const TCHAR * day_string;
	const TCHAR * details_string;
	const TCHAR * doesnotend_string;
	const TCHAR * duedate_string;
	const TCHAR * duration_string;
	const TCHAR * editappointment_string;
	const TCHAR * edittask_string;
	const TCHAR * ends_string;
	const TCHAR * endsafter_string;
	const TCHAR * endson_string;
	const TCHAR * every_string;
	const TCHAR * free_string;
	const TCHAR * friday_string;
   	const TCHAR * high_string;
	const TCHAR * location_string;
	const TCHAR * low_string;
	const TCHAR * manageappointment_string;
	const TCHAR * managetask_string;
	const TCHAR * monday_string;
	const TCHAR * month_string;
	const TCHAR * monthly_string;
	const TCHAR * none_string;
	const TCHAR * normal_string;
	const TCHAR * notes_string;
	const TCHAR * occurs_string;
	const TCHAR * occurrences_string;
	const TCHAR * once_string;
	const TCHAR * outofoffice_string;
	const TCHAR * overdue_string;
	const TCHAR * pattern_string;
	const TCHAR * personal_string;
	const TCHAR * priority_string;
	const TCHAR * private_string;
	const TCHAR * reminder_string;
	const TCHAR * remindme_string;
    const TCHAR * saturday_string;
    //const TCHAR * older_string;
	const TCHAR * sensitivity_string;
	const TCHAR * starts_string;
	const TCHAR * status_string;
	const TCHAR * subject_string;
	const TCHAR * sunday_string;
	const TCHAR * tentative_string;
    const TCHAR * thursday_string;
	const TCHAR * today_string;
	const TCHAR * tomorrow_string;
	const TCHAR * tuesday_string;
	const TCHAR * undated_string;
    const TCHAR * wednesday_string;
	const TCHAR * week_string;
	const TCHAR * weekdays_string;
	const TCHAR * weekly_string;
	const TCHAR * yearly_string;	
	const TCHAR * yesterday_string;

};
